package com.bjpowernode.controller;

import com.bjpowernode.entity.TActivityRemark;
import com.bjpowernode.query.ActivityRemarkQuery;
import com.bjpowernode.result.Result;
import com.bjpowernode.service.ActivityRemarkService;
import com.github.pagehelper.PageInfo;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;

/**
 * 活动备注控制器
 * 处理活动备注相关的HTTP请求，包括添加、查询、更新等操作
 */
@RestController
public class ActivityRemarkController {
    @Resource
    private ActivityRemarkService activityRemarkService;

    /**
     * 添加活动备注
     * @param activityRemarkQuery 活动备注查询对象，包含备注信息
     * @return Result 操作结果，成功返回OK，失败返回FAIL
     */
    @PostMapping("/api/activityRemark")
    public Result addActivityRemark(@RequestBody ActivityRemarkQuery activityRemarkQuery) {
        int count = activityRemarkService.addActivityRemark(activityRemarkQuery);
        return count > 0 ? Result.OK() : Result.FAIL();
    }

    /**
     * 获取活动备注列表
     * @param current 当前页码
     * @param activityId 活动ID
     * @return Result 包含分页信息的活动备注列表
     */
    @GetMapping("/api/activityRemark")
    public Result getActivityRemark(Integer current, Integer activityId) {
        // 调用用户服务获取分页数据
        PageInfo<TActivityRemark> pageInfo = activityRemarkService.getActivityRemarkByPage(current, activityId);
        // 返回成功响应，包含分页信息
        return Result.OK(pageInfo);
    }

    /**
     * 根据ID获取活动备注详情
     * @param id 活动备注ID
     * @return Result 包含活动备注详情的结果
     */
    @GetMapping("/api/activity/remark/detail/{id}")
    public Result getActivityRemarkDetailById(@PathVariable Integer id) {
        // 调用用户服务获取分页数据
        TActivityRemark tActivityRemark = activityRemarkService.getActivityRemarkDetailById(id);
        // 返回成功响应，包含分页信息
        return Result.OK(tActivityRemark);
    }

    /**
     * 更新活动备注
     * @param activityRemarkQuery 活动备注查询对象，包含更新后的备注信息
     * @return Result 操作结果，成功返回OK，失败返回FAIL
     */
    @PostMapping("/api/activity/remark/edit")
    public Result updateActivityRemark(@RequestBody ActivityRemarkQuery activityRemarkQuery) {
        // 调用用户服务获取分页数据
        int count = activityRemarkService.updateActivityRemark(activityRemarkQuery);
        // 返回成功响应，包含分页信息
        return count > 0 ? Result.OK() : Result.FAIL();
    }

    /**
     * 删除指定ID的活动备注
     * <p>通过RESTful API接收活动备注ID，调用服务层执行删除操作，并根据影响行数返回操作结果
     * @param id 活动备注ID，路径参数，必须为正整数
     * @return Result对象，成功时包含影响行数(count=1)，失败时返回错误状态
     */
    @DeleteMapping("/api/activity/remark/delete/{id}")
    public Result deleteActivityRemarkById(@PathVariable Integer id) {
        // 调用活动服务删除指定ID的活动
        int count = activityRemarkService.deleteActivityRemarkById(id);
        // 返回成功响应，包含影响行数
        return count == 1 ? Result.OK(count) : Result.FAIL();
    }
}